package com.demo.service;

import com.demo.tool.paging;
import com.sun.istack.internal.NotNull;
import io.lettuce.core.dynamic.annotation.Param;

import java.text.ParseException;
import java.util.Collection;
import java.util.List;

import static io.lettuce.core.pubsub.PubSubOutput.Type.message;

public interface BaseService <T,Q>{

    // 通过id查找
    T findById(@NotNull java.io.Serializable id);

    // 通过姓名查找
    T findByName(String name);

    //添加
    int save(@NotNull T t);

    //批量插入
    int saveAll(Collection<T> collection);

    //编辑
    int update(@NotNull T t);

    //删除 通过id
    int delById(@NotNull java.io.Serializable id);

    //批量删除
    int delByIdIn(java.io.Serializable[] ids);

    //查询全部
    //带分页
    paging findAllpaging(Integer page, Integer pageSize, @Param(value = "objectQuery")Q q) throws ParseException;

    //查询全部
    //不带分页
    List<T> findAll(@Param(value = "objectQuery")Q q);

}
